package models;

import java.util.Date;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;

import play.db.jpa.Model;

@Entity
public class Materia extends Model {

	private String titulo;
	private String descricao;
	private Date dataVotacao;

	@OneToMany(mappedBy = "materia", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
	private Set<Posicao> posicoes;
	@ManyToOne
	private Casa casa;
	@ManyToOne
	private Politico autor;

	public String getDescricao() {
		return descricao;
	}

	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

	public Date getDataVotacao() {
		return dataVotacao;
	}

	public void setDataVotacao(Date dataVotacao) {
		this.dataVotacao = dataVotacao;
	}

	public Set<Posicao> getPosicoes() {
		return posicoes;
	}

	public void setPosicoes(Set<Posicao> posicoes) {
		this.posicoes = posicoes;
	}

	public Casa getCasa() {
		return casa;
	}

	public void setCasa(Casa casa) {
		this.casa = casa;
	}

	public String getTitulo() {
		return titulo;
	}

	public void setTitulo(String titulo) {
		this.titulo = titulo;
	}

	public Politico getAutor() {
		return autor;
	}

	public void setAutor(Politico autor) {
		this.autor = autor;
	}

	public Posicao getPosicao(Politico p) {
		Posicao ret = null;
		for (Posicao pos : posicoes) {
			if (pos.getPolitico() != null && pos.getPolitico().getId() == p.getId()) {
				ret = pos;
			}
		}
		return ret;
	}
	
	public Posicao getPosicao(Eleitor p) {
		Posicao ret = null;
		for (Posicao pos : posicoes) {
			if (pos.getEleitor() != null && pos.getEleitor().getId() == p.getId()) {
				ret = pos;
			}
		}
		return ret;
	}
}
